const express = require('express')
const fs = require('fs')
const path = require('path')
const util = require('util')

const app = express()

// 1.请求main.css
// 测试地址: http://localhost:3000/public/css/main.css
// app.get('/public/css/main.css', async (req, res) => {
//   const data = await util.promisify(fs.readFile)('./public/css/main.css')
//   res.end(data)
// })

// 2.Express 单独提供了一个内置中间件：托管静态资源
// 访问的时候不要加前缀
// 测试地址: http://localhost:3000/css/main.css
// app.use(express.static('./public'))

// 3.加上访问前缀
// 测试地址: http://localhost:3000/public/css/main.css
// 测试地址: http://localhost:3000/foo/css/main.css
// app.use('/public', express.static('./public'))
// app.use('/foo', express.static('./public'))

// 4.路径最好是绝对路径
// 测试地址: http://localhost:3000/foo
// app.use('/foo', express.static(path.join(__dirname, './public')))

// 5.资源托管的配置项
// 测试地址: http://localhost:3000/foo
// app.use(
//   '/foo',
//   express.static(path.join(__dirname, './public'), {
//     // 根路径默认地址
//     // index: ['index.html']
//     index: ['foo.html']
//   })
// )

// 6.托管多个静态资源目录
// 资源托管顺序问题
// 测试地址: http://localhost:3000/public/css/main.css
// 测试地址: http://localhost:3000/node_modules/express/Readme.md
app.use('/node_modules', express.static('./node_modules'))
app.use('/public', express.static('./public'))

app.listen(3000, () => {
  console.log(`Server running at http://localhost:3000/`)
})
